package com.ytjj.qmyx.users.client;

import com.ytjj.common.api.CommonResult;
import com.ytjj.common.model.ExposureNumResponse;
import com.ytjj.qmyx.users.model.bigdata.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient("ygyx-bigdata")
public interface BigdataClient {
    /**
     * 大数据-app订单分析
     * @param dto
     * @return
     */
    @PostMapping("/adsAppActivity/appOrderList")
    CommonResult appOrderList(@RequestBody AdsAppActivityDto dto);

    //
    @PostMapping("/adsAppChannel/channelList")
    CommonResult channelList(@RequestBody AdsAppChannelDto adsAppChannelDto);

    //
    @PostMapping("/adsAppContent/selectAdsAppContent")
    CommonResult selectAdsAppContent(@RequestBody AdsAppContentDto adsAppContentDto);
    @PostMapping("/adsAppContent/homePageList")
    CommonResult selectAdsHomePageAll(@RequestBody AdsHomePageDto adsHomePageDto);
    @PostMapping("/adsAppContent/selectAdsEvaluateDetailAll")
    CommonResult selectAdsEvaluateDetailAll(@RequestBody AdsEvaluateDetailDto adsEvaluateDetailDto);
    @PostMapping("/adsAppContent/selectAdsAppContentSummaryAll")
    CommonResult selectAdsAppContentSummaryAll(@RequestBody AdsAppContentSummaryDto adsAppContentSummaryDto);

    //
    @PostMapping("/adsAppOperate/selectAdsAppOperate")
    CommonResult selectAdsAppOperate(@RequestBody AdsAppOperateDto adsAppOperateDto);

    //
    @PostMapping("/adsChannel/adsList")
    CommonResult adsList(@RequestBody AdsChannelCountDto adsChannelCountDto);

    //
    @PostMapping("/adsOrder/adsOrderList")
    CommonResult adsOrderList(@RequestBody AdsOrderCountDto adsOrderCountDto);

    //
    @PostMapping("/adsProduct/productList")
    CommonResult productList(@RequestBody AdsProductCountDto adsProductCountDto);

    //
    @PostMapping("/adsPv/pvList")
    CommonResult pvList(@RequestBody AdsPvCountDto adsPvCountDto);

    //
    @GetMapping("/adsExpose/sumDataByUserId")
    CommonResult sumDataByUserId(@RequestParam Integer userId);
    @GetMapping("/adsExpose/sumExposureByDynamicId")
    ExposureNumResponse sumExposureByDynamicId(@RequestParam Integer dynamicId);
    @GetMapping("/adsExpose/scheduleTask")
    List<AdsExpose> scheduleTask();

    @GetMapping("/adsTopic/getTotalById")
    AdsTopicResponse getTotalById(@RequestParam Integer id);
    /**
     * 根据话题Id获得今日话题pv
     * @returns: com.ytjj.qmyx.admin.model.db2.AdsTopicResponse
     * 
     */
    @GetMapping("/adsTopic/getTodayPv")
    AdsTopicResponse getTodayPv(@RequestParam Integer id);
    @PostMapping("/adsTopic/topList")
    CommonResult topList();
    @GetMapping("/adsTopic/getTopicInfoAndPvById")
    AdsTopicResponse getTopicInfoAndPvById(@RequestParam Integer id);

    @PostMapping("/adsAppContent/selectAdsAppPostAll")
    CommonResult selectAdsAppPostAll(@RequestBody AdsAppPostDto adsAppPostDto);

    @PostMapping("/adsAppContent/selectAdsAppRetentionAll")
    CommonResult selectAdsAppRetentionAll(@RequestBody AdsAppRetentionDto adsAppRetentionDto);

    @PostMapping("/adsAppContent/selectAdsAppBehaviorAll")
    CommonResult selectAdsAppBehaviorAll(@RequestBody AdsAppBehaviorDto adsAppBehaviorDto);

    @PostMapping("/adsAppContent/selectEvaluateDetailWeek")
    CommonResult selectEvaluateDetailWeek(@RequestBody AdsEvaluateDetailWeekDto adsEvaluateDetailWeekDto);
}
